using System.Collections.Generic;
using RanchBuddy.Core.Domain;
using RanchBuddy.Core.Services.Impl;
using StructureMap;

namespace RanchBuddy.Core.DataAccess
{
    [PluginFamily("DefaultRepositoryStatus")]
    public interface IRepositoryStatus
    {
        T GetObject<T>();
        void SetObject<T>(T Object);
        void AddMessage(string Message);
        List<string> GetMessages();
        void AddMessages(List<string> Messages);
        void AddRuleViolation(RuleViolation violation);
        void AddRuleViolations(List<RuleViolation> violations);
        List<RuleViolation> GetRuleViolations();
        Status.StatusTypes StatusType { get; set; }
    }
}